

#ifndef UC_GEASSIGN_H
#define UC_GEASSIGN_H

#pragma pack (push, 8)
class UcGePoint2d;
class UcGeVector2d;
class UcGePoint3d;
class UcGeVector3d;

inline UcGePoint2d&
asPnt2d(const double* pnt)
{
    return *((UcGePoint2d*)pnt);
}

inline UcGeVector2d&
asVec2d(const double* vec)
{
    return *((UcGeVector2d*)vec);
}

inline double*
asDblArray(const UcGePoint2d& pnt)
{
    return (double*)&pnt;
}

inline double*
asDblArray(const UcGeVector2d& vec)
{
    return (double*)&vec;
}

inline UcGePoint3d&
asPnt3d(const double* pnt)
{
    return *((UcGePoint3d*)pnt);
}

inline UcGeVector3d&
asVec3d(const double* vec)
{
    return *((UcGeVector3d*)vec);
}

inline double*
asDblArray(const UcGePoint3d& pnt)
{
    return (double*)&pnt;
}

inline double*
asDblArray(const UcGeVector3d& vec)
{
    return (double*)&vec;
}

#pragma pack (pop)
#endif
